package com.example.demo.mapper;

import com.example.demo.dto.SalaryDTO;
import com.example.demo.pojo.Salary;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Mapper
public interface SalaryMapper {
    // 查询所有薪资信息（包含员工和部门），返回DTO列表
    List<SalaryDTO> findAllSalaryWithInfo();
    // 查询所有薪资
  //  public List<SalaryDTO> findAll();
    
    // 根据员工ID查询薪资
    public List<SalaryDTO> findByEmpId(Integer empId);
    
    // 根据员工ID和月份查询薪资
    public SalaryDTO findByEmpIdAndMonth(Integer empId, String month);
    
    // 新增薪资
    public int saveSalary(SalaryDTO salaryDTO);
    
    // 更新薪资
    public int updateSalary(Salary salary);
    
    // 删除薪资
    int deleteSalary(@Param("empId") Integer empId, @Param("month") Date month);
    
    // 统计部门薪资总和
    public BigDecimal sumSalaryByDeptId(int deptId);
    
    // 统计员工薪资总和
    public BigDecimal sumSalaryByEmpId(int empId);
    
    // 统计指定月份的部门薪资
    public BigDecimal sumSalaryByDeptIdAndMonth(int deptId, Date month);
    
    // 统计指定月份的所有薪资
    public BigDecimal sumSalaryByMonth(Date month);


}